home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls085.solintel.Z / tls085.solintel / lib / vtcl / tests / list.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  9.1 KB  |  364 lines

  1. # CVS $Id: list.tcl,v 1.4 1995/04/28 11:40:43 zibi Exp $
  2. #
  3. # simple smoke test of list
  4. #
  5.  
  6. global DisplayTxt
  7.  
  8. proc display {delay args} {
  9.      global DisplayTxt
  10.  
  11.      VtSetValues $DisplayTxt -value [join $args]
  12.      if {$delay > 0} {sleep $delay}
  13. }
  14.  
  15. proc quitCB {cbs} {
  16.      VtClose
  17.      exit 0
  18. }
  19.  
  20. #
  21. # Sets the selectio style of the list widget 
  22. #
  23. proc setStyleCB {lst style cbs} {
  24.      set target [keylget cbs widget]
  25.  
  26.      display 0 $style
  27.      VtSetValues $lst -selection $style
  28.      VtDestroyDialog $target
  29. }
  30.  
  31. #
  32. # Displays the selected items
  33. #
  34. proc selectCB {cbs} {
  35.      display 0 "Widget is (" [keylget cbs widget] ")\n" \
  36.            "Selected Items are " [keylget cbs selectedItemList] 
  37. }
  38.  
  39. #
  40. # Displays the items after a double click
  41. #
  42. proc defaultCB {cbs} {
  43.      display 0 "You double clicked on Widget (" [lindex $cbs 0] ")\n" \
  44.            "item is (" [lindex $cbs 1] 
  45. }
  46.  
  47. proc selectStyleCB {lst cbs} {
  48.      set fn [VtStartForm $lst.tmp ]
  49.      set chx [VtRadioBox $fn.chx]
  50.      VtToggleButton $chx.single -label Single \
  51.              -callback "setStyleCB $lst  SINGLE"
  52.      VtToggleButton $chx.extended -label Extended \
  53.              -callback "setStyleCB $lst  EXTENDED"
  54.      VtToggleButton $chx.multiple -label Multiple \
  55.              -callback "setStyleCB $lst  MULTIPLE"
  56.      VtToggleButton $chx.browse -label Browse \
  57.              -callback "setStyleCB $lst  BROWSE"
  58.  
  59.      VtShow $fn
  60. }
  61.  
  62. proc restoreList {lst} {
  63.      VtListDeleteItem $lst -all
  64.      VtListAddItem $lst \
  65.            -itemList {first second third fourth fifth sixth seventh}
  66.      VtSetValues $lst -scrollBar 0
  67. }
  68.  
  69. #
  70. # This test setting of the topItemPosition
  71. #
  72. proc testTopItemCB {lst cbs} {
  73.            restoreList $lst
  74.  
  75.     set rows [VtGetValues $lst -rows]
  76.  
  77.     for {set i 1} { $i < $rows } {incr i} {
  78.         VtSetValues $lst -topItemPosition $i
  79.         set ret [VtGetValues $lst -topItemPosition]
  80.         display 1 "Setting top to $i"
  81.         if { $i != $ret } {
  82.         error "Top Item Broken i is $i ret is $ret"
  83.         }
  84.     }
  85.     
  86.     sleep 1
  87.  
  88.     for {set i $rows} { $i > 0 } {incr i -1} {
  89.         display 1 "Setting top to $i"
  90.         VtSetValues $lst -topItemPosition $i
  91.     }
  92.  
  93.     display 0 "Done, Testing topItemPosition"
  94. }
  95.  
  96. proc testGetSelCB {lst cbs} {
  97.     display 1 "List Get Test ..."
  98.  
  99.     restoreList $lst
  100.     
  101.     VtSetValues $lst -selection EXTENDED
  102.  
  103.     VtListSelectItem $lst -itemList {{ten 4} {five}}
  104.     display 1 "Selecting bogus items {{ten 4} {five}}"
  105.     set sel ""
  106.     set sel [VtListGetSelectedItem $lst -byItemList]
  107.     display 2 "Get selected items by items.."
  108.     display 2 "** Got <<$sel>> **"
  109.  
  110.     VtListSelectItem $lst -itemList {{first 1} {second 2}}
  111.     display 1 "Selecting by item, {{first 1} {second2}} "
  112.  
  113.     set sel [VtListGetSelectedItem $lst -byItemList]
  114.     display 2 "Get selected items by items.."
  115.     display 2 "** Got <<$sel>> **"
  116.  
  117.     VtListSelectItem    $lst -positionList {1 3}
  118.     display 2 "Selecting by positionList {1 3}"
  119.  
  120.     set sel [VtListGetSelectedItem $lst -byPositionList]
  121.     display 2 "Get selected items by position.."
  122.     display 2 "** Got <<$sel>> **"
  123.  
  124.     display 2 "Testing a get with nothing selected, both ways.."
  125.     VtListDeselectItem $lst -all
  126.     set sel [VtListGetSelectedItem $lst -byItemList]
  127.     if {$sel == ""} {
  128.     display 2 "byItemList returned nothing"
  129.     } else {
  130.     display 2 "***** <<$sel>> *****"
  131.     }
  132.  
  133.     set sel [VtListGetSelectedItem $lst -byPositionList]
  134.     if {$sel == ""} {
  135.     display 2 "byPositionList returned nothing"
  136.     } else {
  137.     display 2 "***** <<$sel>> *****"
  138.     }
  139.     
  140.     echo "me [VtListGetItem $lst -position 1 ]"
  141.  
  142.     display 0 "Done."
  143. }
  144.  
  145. proc testGetCB {lst cbs} {
  146.     display 1 "List Get Test ..."
  147.  
  148.     restoreList $lst
  149.     
  150.     set itemList [VtListGetItem $lst -position 1]
  151.     display 1 "Getting item position 1 <$itemList>"
  152.  
  153.     set itemList [VtListGetItem $lst -position 0]
  154.     display 1 "Getting item position 0 <$itemList>"
  155.  
  156.     display 7 "Getting item position 7 <$itemList>"
  157.  
  158.     set itemList [VtListGetItem $lst -positionList {0 2 3 7}]
  159.  
  160.     display 1 "Getting item position 0 2 3 7 <$itemList>"
  161.  
  162.     set itemList [VtListGetItem $lst -all]
  163.  
  164.     display 1 "Getting all item positions <$itemList>"
  165.  
  166.     display 0 "Done."
  167. }
  168.  
  169. proc testDSelectCB {lst cbs} {
  170.  
  171.     restoreList $lst
  172.  
  173.     display 2 "Select all then deselect one by one by item"
  174.     VtListSelectItem $lst -all
  175.     
  176.     foreach i {first second third fourth fifth} {
  177.     display 1 " Deselecting item $i"
  178.     VtListDeselectItem $lst -item $i
  179.     }
  180.  
  181.     display 2 "Select all then deselect one by one by Position"
  182.     VtListSelectItem $lst -all
  183.  
  184.     foreach i {1 2 3 4 5} {
  185.     display 1 " Deselecting position $i"
  186.     VtListDeselectItem $lst -position $i
  187.     }
  188.  
  189.     display 2 "Select all then deselect by item List odd numbers "
  190.     VtListSelectItem $lst -all
  191.     VtListDeselectItem $lst -itemList {first third fifth}
  192.     display 2 "   first third  and fifth shouldn't be selected"
  193.  
  194.     display 2 "Select all then deselect by item position even numbers"
  195.     VtListSelectItem $lst -all
  196.     VtListDeselectItem $lst -positionList {2 4}
  197.     display 2 "   second and fourth shouldn't be selected"
  198.  
  199.     VtListDeselectItem $lst -all
  200.  
  201.     display 0 done
  202. }
  203.  
  204. proc testSelectCB {lst cbs} {
  205.  
  206.      restoreList $lst
  207.      display 1 "List Select Test..."
  208.  
  209.      for {set i 1} {$i<=5} {incr i} {
  210.      display 0 "selecting $i"
  211.      VtListSelectItem $lst -position $i 
  212.      }
  213.  
  214.      VtSetValues $lst -selection EXTENDED
  215.      VtListSelectItem    $lst -positionList {1 3}
  216.      display 2 "Selecting by positionList {1 3}"
  217.  
  218.      VtListSelectItem $lst -itemList {first fifth}
  219.      display 2 "Selection by itemList {first fifth}"
  220.  
  221.      VtListSelectItem $lst -all
  222.      display 2 "Selection -all"
  223.      
  224.      restoreList $lst
  225.      display 0 "Done testing select."
  226. }
  227.  
  228. proc testAddCB {lst cbs} {
  229.      display 2 "Deleting all items"
  230.      VtListDeleteItem $lst -all
  231.  
  232.  
  233.      display 2 "Adding initial items, all at once."
  234.      VtListAddItem $lst -itemList {"Initial 1" "Initial 2" "Initial 3" last}
  235.  
  236.      display 2 "Adding more items"
  237.      foreach i {one two three four} {
  238.          VtListAddItem $lst -position 0 -item "More items - $i"
  239.      }
  240.  
  241.      display 2 "Deleting all items"
  242.      VtListDeleteItem $lst -all
  243.  
  244.      VtListAddItem $lst -itemList {"first" "second" "third" "fourth" "last"}
  245.  
  246.      display 2 "Deleting first item..."
  247.      VtListDeleteItem $lst -position 1
  248.  
  249.      display 2 "Restoring first item..."
  250.      VtListAddItem $lst -position 1 -item "first"
  251.  
  252.      display 2 "Deleting last item..."
  253.      VtListDeleteItem $lst -position 0
  254.  
  255.      display 2 "Restoring last item..."
  256.      VtListAddItem $lst -position 0 -item "last"
  257.  
  258.      display 2 "Deleting  item 3..."
  259.      VtListDeleteItem $lst -position 3
  260.  
  261.      display 2 "Restoring item 3..."
  262.      VtListAddItem $lst -position 3 -item "third"
  263.  
  264.      display 2 "Delete from 1 to 3"
  265.      VtListDeleteItem $lst -positionList {1  2  3}
  266.  
  267.      display 2 "Restoring 1 to 3"
  268.      VtListAddItem $lst -position 1 -itemList {first second third}
  269.  
  270.      display 2 "Deleteing by item name - second"
  271.      VtListDeleteItem $lst -item second
  272.  
  273.      display 2 "Restoring "
  274.      VtListAddItem $lst -position 2 -item "second"
  275.  
  276.      display 2 "Deleting by itemList - first second"
  277.      VtListDeleteItem $lst -itemList {first second}
  278.  
  279.  
  280.      display 2 "Testing -scrollBar"
  281.      VtSetValues $lst -scrollBar 1
  282.  
  283.      display 2 "Done"
  284. }
  285.  
  286. proc testSetCB {lst cbs} {
  287.      display 1 "Testing VtListSetItem...."
  288.  
  289.      restoreList $lst
  290.  
  291.      display 2 " VtListSetItem by items ...."
  292.      foreach i {first second third fourth fifth} {
  293.          VtListSetItem $lst -item $i -newItem "New items $i"
  294.          sleep 1
  295.      }
  296.  
  297.      restoreList $lst
  298.      display 2 " VtListSetItem by positions...."
  299.      foreach i {1 2 3 4 5} {
  300.          VtListSetItem $lst -position $i -newItem "New items $i"
  301.          sleep 1
  302.      }
  303.  
  304.      display 2 "Done"
  305. }
  306.  
  307. proc testAllCB {lst cbs} {
  308.     testAddCB $lst $cbs
  309.     testSelectCB $lst $cbs
  310.     testDSelectCB $lst $cbs
  311.     testGetCB $lst $cbs
  312.     testGetSelCB $lst $cbs
  313.     testSetCB $lst $cbs
  314.  
  315.     display 0 "DONE !!"
  316. }
  317.  
  318. proc mkCenteredBut {name label cb} {
  319.  
  320.     set pb [VtPushButton $name -label $label -callback $cb \
  321.         -labelCenter]
  322.  
  323.     return pb
  324. }
  325.  
  326. set ap [VtOpen "list"]
  327.  
  328. set fn [VtStartForm $ap.form -title "List Tests"]
  329.  
  330. set DisplayTxt [VtText $fn.txt \
  331.         -columns 50 \
  332.         -rows 2 \
  333.         -wordWrap \
  334.         -leftSide FORM -rightSide FORM -topSide FORM]
  335.  
  336. set lst [VtList $fn.list \
  337.         -itemList {"Initial one" "Initial two" "Initial three"} \
  338.         -rows 6\
  339.         -callback selectCB\
  340.         -defaultCallback defaultCB\
  341.         -leftSide FORM -rightSide FORM -topSide $DisplayTxt ]
  342.  
  343. set rc [VtRowColumn $fn.rc -horizontal \
  344.             -topSide NONE -bottomSide FORM -leftSide FORM \
  345.             -packing COLUMN -numColumns 3]
  346.  
  347. VtSetValues $lst -bottomSide $rc -topSide $DisplayTxt
  348.  
  349. mkCenteredBut $rc.tstAll  "Test All"          "testAllCB $lst"
  350. mkCenteredBut $rc.tstAdd  "Test Add"          "testAddCB $lst" 
  351. mkCenteredBut $rc.tstSel  "Test Select"       "testSelectCB $lst" 
  352. mkCenteredBut $rc.tstGet  "Test Get"           "testGetCB $lst" 
  353. mkCenteredBut $rc.tstDSel "Test DeSelect"     "testDSelectCB $lst" 
  354. mkCenteredBut $rc.tstGelS "Test Get Selected"   "testGetSelCB $lst" 
  355. mkCenteredBut $rc.tstSet  "Test Set"          "testSetCB $lst" 
  356. mkCenteredBut $rc.tstTopI  "Test TopItem"     "testTopItemCB $lst" 
  357. mkCenteredBut $rc.select  "Select Style"      "selectStyleCB $lst" 
  358. mkCenteredBut $rc.quit    "Exit" quitCB  
  359.  
  360.  
  361. VtShowDialog $fn
  362.  
  363. VtMainLoop
  364.